#!/bin/bash
#
# Este script muestra las concesiones activas en este momento
# para la RED 192.168.128.0/23
#
# Argumentos:
#   1) Fichero del DHCP con las IPs fijadas (/etc/dhcp/dhcpd_WIFI_IPSFIJAS_MACs_Asignadas.conf)
#   2) Lista de IPs activas (/var/log/squid/WDOC_IPS_ACTIVE_NOW.db.txt)
#   3) Concesiones del hook (/var/log/squid/DHCP_LEASES.db.txt)
#
# 

 # Comprobar argumentos
 if [ "" = "$3" ]
 then
    echo "ERROR: Faltan argumentos: <Wifi_IPsFijas_Macs_Asignadas> <Wdoc_Ips_activas_now.DB> <Dhcp_Leases.DB>" >&2
    exit 1
 fi

 # Obtener la ruta absoluta del script
 LSOF=$(lsof -p $$ | grep -E "/"$(basename $0)"$")
 MY_PATH=$(echo $LSOF | sed -r s/'^([^\/]+)\/'/'\/'/1 2>/dev/null)
 MY_ROOT=$(dirname $MY_PATH)

 # Para los temporales...
 tmpfile="/tmp/leasesNet128_$$_$RANDOM"

 # Obtener los nombres,ips, y macs de los equipos reservados...
 $MY_ROOT/formatFixedAliases.pl $1 | cut -d'#' -f2,3,4,5,7 > $tmpfile.datos

 # Ahora recorrer las IPs concedidas en este momento...
 exec 8< $2
 while read -u 8 VBLE
 do
    # En VBLE tenemos la IP ... la buscamos en el fichero de concesiones...
    # Nos quedamos con la ultima linea y de ella con la MAC y tiempo
    data=$(grep "*$VBLE#" $3 | tail -1 | cut -d'#' -f 2,3)
    macConcesion=$(echo "$data" | cut -d'#' -f1)
    timeConcesion=$(echo "$data" | cut -d'#' -f2)

    # Ahora comprobamos si esta en el fichero de datos...
    dataPC=$(grep -i "#$macConcesion#" $tmpfile.datos  | tail -1 )
    if [ "" != "$dataPC" ]
    then
       # Sip, esta ok...
       dat=$(echo "$dataPC" | cut -d'#' -f1,2,3,4 )
       fecha=$(date -d @$timeConcesion '+%Y/%m/%d %H:%M:%S' )
       echo "$timeConcesion#$dat#$fecha#active#"
    fi
    
 done
 exec 8<&-

 rm -f $tmpfile
 
 
